"""
演示lambda匿名函数
"""


# 定义一个函数，接受其它函数输入
def test_func(compute):
    result = compute(1, 2)
    print(f"结果是:{result}")


# 通过lambda匿名函数的形式，将匿名函数作为参数传入
def add(x, y):
    return x + y


test_func(add)
test_func(lambda x, y: x - y)
print((lambda x, y: x * y)(1, 2))

# 返回一个lambda表达式
def make_incrementor(n):
    return lambda x : x + n

f = make_incrementor(666)
print(f(10))
print(f(0))

# 自定义排序规则
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
pairs.sort(key=lambda pair: pair[1], reverse=True)
print(pairs)
pairs.sort(key=lambda pair: pair[1])
print(pairs)